var http = require('http')
var fs = require('fs')
// 导入新的URL模块
// var { URL } = require('url')
//导入新的template模块
var template = require('art-template')
var comments = [
  {
    name: '张三',
    message: '今天天气不错！',
    dateTime: '2021-4-1 18:30'
  }
]
http
  .createServer(function (req, res) {

    // new URL(路径url, 你的服务器的地址)
    //请求的路径
    var parseObj = new URL(req.url, 'http://localhost:3000')
    console.log('请求的地址是：' + parseObj)
    //请求路径的地址
    var pathname = parseObj.pathname
    if (pathname === '/') {
      fs.readFile('./views/index.html', function (err, data) {
        if (err) {
          return res.end('404 Not Found')
        }
        //使用art-template模板，将html里的内容替换成这里的字符串
        htmlStr = template.render(data.toString(), { comments_a: comments })
        res.end(htmlStr)
      })
    }
    else if (pathname.indexOf('/public/') === 0) {
      fs.readFile('.' + pathname, function (err, data) {
        if (err) {
          return res.end('404 Not Found')
        }
        res.end(data)
      })
    }
    //ajax请求地址的传入数据的处理
    else if (pathname.indexOf('/post') === 0) {
      //定义一个空对象
      var comment = {}
      var str = parseObj.search
      //截取字符串第一位以后的，也就是去除？
      str = str.substr(1)
      //split是以&为分界线将字符串截取成一个数组并且遍历数组
      str.split('&').map(item => {
        //以=为分界符将第一个组截成一个新的数组并将值赋予给对象comment{}，其中comment[属性名]=[属性值]
        var arr = item.split('=')
        comment[decodeURI(arr[0])] = decodeURI(arr[1])
      })
      //利用构造方法创建一个目前的时间对象
      var date = new Date()
      //增加comment对象一个属性
      comment.dateTime = date.getFullYear() + '-' + String(date.getMonth() + 1) + '-' + date.getDate() + ' ' + date.getHours() + ':' + date.getMinutes()
      //将对象comment插入在数组comments中（在数组后面插入是push，前面插入是unshift）
      comments.push(comment)
      //结束请求并且返回字符串
      res.end(JSON.stringify(comments))
    }
    else if (pathname.indexOf('/pos') === 0) {
      //结束请求并且返回字符串（用来刷新）
      res.end(JSON.stringify(comments))
    }
    else {
      fs.readFile('./views/404.html', function (err, data) {
        if (err) {
          return res.end('404 Not Found')
        }
        res.end(data)
      })
    }
  })
  .listen(3000, function () {
    console.log('服务器已经启动')
  })